Package Apache-2.0 license properly#1946
Conversation
|
Would appreciate some hints in the OP or PR comments that point out for each crate why this is necessary. |
|
I have edited the top-comment |
|
For examples and interop, why do you care? Presumably you're not going to package these, nor is anyone distributing them. For tonic itself, IMO we should not encumber the published crate with another license only for a disabled benchmark -- could we exclude any files from that benchmark from the distribution? |
In practice no, it is not necessary, I just followed that in the current version there is metadata included around it. Was also considering just stripping down the
Feel free to strip down as much as possible for distribution. We want to avoid having benches in downstream packaging as well, and personally it seems to make more sense to run the benches on a git repo rather than a packaged crate, but I am not familiar enough with the ecosystem to know why the benches are generally packaged. |
Stripping metadata for these crates and adding
Suggest just adding |
Done.
Needed to use |
62a69c7 to
3d4bf08
Compare
|
Regarding For Footnotes |
ce890c8 to
9c74f03
Compare
|
Suggest you change the order of commits here to first remove metadata from non-published crates (except the license in any examples crates) then add a commit to add licenses to the published crates where necessary. |
9c74f03 to
7d78aec
Compare
You still have the second commit adding back a bunch of license stuff to crates from which you removed license stuff in the first commit. This does not make sense. Please clean up the commit history so that each commit can be reviewed separately. |
Which one are you referring to?
|
|
Okay, but I had asked you to do this:
In the current setup, you're adding metadata in the second commit ("Indicate Apache-2.0 license accordingly") and then reverting a bunch of that change in the commits for |
7d78aec to
d26ad5a
Compare
|
Ok, didn't know you wanted that for |
|
I am going to close this for now, but I would accept a version of this change that is updated. Closing for now, feel free to re-open. |
|
I don't think there was any open issues for this one, a simple rebase should also fix the CI issues? |
Motivation
This PR tries to address licensing issue in the
Cargo.tomlmetadata. Both the source files and the generated files containApache-2.0licensed files, and as such theCargo.tomlfile should reflect that. This is not a issue becauseprostis already licensed asApache-2.0and as such any dependency would have to comply withMIT AND Apache-2.0implicitly.A more nuanced file are the
.binfiles which further includesBSD-3-Clausemetadata. To me it is unclear what thelicenseunderCargo.tomlis meant to reflect and if it would include the generated artifacts at the end as well, and it is also ambiguous who should be carrying the additionalBSD-3-Clauselicense information (tonic,prostor end-user?). This part is not addressed here.Solution
Apache-2.0license file and metadataLicense breakdown for the files that require the additional Apache-2.0 metadata:
examples: examples/protointerop: interop/proto/grpc/testingtonic: tonic/benches-disabled/proto/helloworldtonic-health: tonic-health/prototonic-reflection: tonic-reflection/proto,tonic-types: tonic-types/protoFor reference I searched for
Apache Licenseas well as the spdx formApache-2.0.Additionally all of the
src/generated/*.binfiles have the Apache-2.0 metadata in them, as well as theBSD-3-ClauseExtracted from types.bin
For reference: https://spdx.org/licenses/BSD-3-Clause.html
PS: the Apache-2.0 copyright should be updated to include
tonicas the copyright holder, unless it is not meant to be altered from upstream.